package cn.lsj.order.test;

import java.util.ArrayList;
import java.util.List;



public class FilenameGenerator2 {

//    public static String formatFileName(String input) {
//        // 去除不能用作文件名称的特殊符号
//        String fileName = input.replaceAll("[\\\\/:*?\"<>|]", "");
//
//        // 只保留前50个字符
//        if (fileName.length() > 50) {
//            fileName = fileName.substring(0, 50);
//        }
//
//        return fileName;
//    }

    public static String formatFileName(String input) {
        // 去除不能用作文件名称的特殊符号和换行符
        String fileName = input.replaceAll("[\\\\/:*?\"<>|\n]", "");

        // 只保留前50个字符
        if (fileName.length() > 50) {
            fileName = fileName.substring(0, 50);
        }

        return fileName;
    }

//    public static void main(String[] args) {
//        String input = "这是一个文件名\\包含特殊符号?和超过50个字符的文件名称|需要处理";
//        String formattedFileName = formatFileName(input);
//        System.out.println(formattedFileName);
//    }


    public static void main(String[] args) {
        String content = "这是一段中(（、《\\文字符串，包含多行文本。\n" +
                "每行都有内容。\n" +
                "行数较多。\n" +
                "需要截取前25行作为文件名称。\n" +
                "一些特殊字符可能需要去除，如：!@#$%^&*()";

        System.out.println(formatFileName(content));
//        List<String> lines = getLines(content, 25);
//        String filename = generateFilename(lines);
//        System.out.println("生成的文件名称：" + filename);
    }

    private static List<String> getLines(String content, int count) {
        List<String> lines = new ArrayList<>();
        String[] splitContent = content.split("\\r?\\n");
        int linesCount = Math.min(count, splitContent.length);

        for (int i = 0; i < linesCount; i++) {
            lines.add(splitContent[i]);
        }

        return lines;
    }

    private static String generateFilename(List<String> lines) {
        StringBuilder builder = new StringBuilder();

        for (String line : lines) {
            builder.append(line);
        }

        return builder.toString();
    }
}
